package com.xgk.boot.module.core.dal.entity.order;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xgk.boot.framework.mybatis.core.dataobject.BaseDO;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

@Data
@TableName("order_box")
public class OrderBoxDO extends BaseDO {
    /**
     * 主键ID，自增
     */
    @TableId(value = "ob_id", type = IdType.ASSIGN_ID)
    private Long obId;

    /**
     * 包裹编号
     */
    @TableField("box_code")
    private String boxCode;

    /**
     * 关联订单编号
     */
    @TableField("order_code")
    private String orderCode;

    /**
     * 服务商单号
     */
    @TableField("service_number")
    private String serviceNumber;

    /**
     * 物流跟踪号
     */
    @TableField("tracking_number")
    private String trackingNumber;

    /**
     * 服务商费用
     */
    @TableField("service_provider_fee")
    private BigDecimal serviceProviderFee;

    /**
     * 服务商称重(kg)
     */
    @TableField("service_provider_weight")
    private BigDecimal serviceProviderWeight;

    /**
     * 单位(箱、件、板、桶等)
     */
    @TableField("box_unit")
    private String unit;

    /**
     * 包裹数量
     */
    @TableField("box_quantity")
    private Integer quantity;

    /**
     * 包裹重量(kg)
     */
    @TableField("box_weight")
    private BigDecimal boxWeight;

    /**
     * 包裹实际重量(kg)
     */
    @TableField("box_actual_weight")
    private BigDecimal boxActualWeight;

    /**
     * 包裹体积重量(kg)
     */
    @TableField("box_vol_weight")
    private BigDecimal boxVolWeight;

    /**
     * 包裹长度(cm)
     */
    @TableField("box_length")
    private BigDecimal boxLength;

    /**
     * 包裹宽度(cm)
     */
    @TableField("box_width")
    private BigDecimal boxWidth;

    /**
     * 包裹高度(cm)
     */
    @TableField("box_height")
    private BigDecimal boxHeight;

    /**
     * 申报价值
     */
    @TableField("box_declared_value")
    private BigDecimal boxDeclaredValue;

    /**
     * 保险价值
     */
    @TableField("box_insurance_value")
    private BigDecimal boxInsuranceValue;

    /**
     * 运费
     */
    @TableField("box_shipping_fee")
    private BigDecimal boxShippingFee;

    /**
     * 原始运费
     */
    @TableField("box_org_shipping_fee")
    private BigDecimal boxOrgShippingFee;

    /**
     * 货币代码
     */
    @TableField("currency_code")
    private String currencyCode;

    /**
     * 汇率
     */
    @TableField("currency_rate")
    private BigDecimal currencyRate;

    /**
     * 创建时间
     */
    @TableField("box_add_time")
    private Date boxAddTime;

    /**
     * 发货时间
     */
    @TableField("box_ship_time")
    private Date boxShipTime;

    /**
     * 妥投时间
     */
    @TableField("box_delivered_time")
    private Date boxDeliveredTime;

    /**
     * 更新时间
     */
    @TableField("box_update_time")
    private Date boxUpdateTime;

    /**
     * 物流状态
     * 0:未发货 1:运输中 2:已签收 3:异常
     */
    @TableField("box_tracking_status")
    private Integer boxTrackingStatus;

    /**
     * 面单URL或Base64
     */
    @TableField("box_label")
    private String boxLabel;
}
